diode theory